package org.ipb.controller.modul.strukturorganisasi;

import java.util.Date;

import org.ipb.model.KelompokOrganisasi;
import org.ipb.model.KelompokStruktur;
import org.ipb.model.SKKeputusan;
import org.ipb.model.StrukturOrganisasi;

import util.hibernate.DAO;

import com.opensymphony.xwork2.ActionSupport;

public class ActionCrud extends ActionSupport {
	private static final long serialVersionUID = -5933849517817526086L;
	private int id;
	private String nama;
	private String inisial;
	private Date tanggalBerlaku;
	private Date tanggalBerakhir;
	private int levelDariAtas;
	private String noSk;
	private String namaJabatan;
	private String strukturOrganisasiInduk;
	private KelompokOrganisasi kelompokOrganisasi;
	private String kelompokStruktur;
	private String skKeputusan;
	private boolean aktif;

	public String getSkKeputusan() {
		return skKeputusan;
	}

	public void setSkKeputusan(String skKeputusan) {
		this.skKeputusan = skKeputusan;
	}

	public String getKelompokStruktur() {
		return kelompokStruktur;
	}

	public void setKelompokStruktur(String kelompokStruktur) {
		this.kelompokStruktur = kelompokStruktur;
	}

	public String insert() {
		DAO<Integer> dao = new DAO<Integer>();
		StrukturOrganisasi object = new StrukturOrganisasi();

		KelompokStruktur ks = new KelompokStruktur();
		ks.setId(Integer.valueOf(getKelompokStruktur()));

		SKKeputusan skkp = new SKKeputusan();
		skkp.setId(Integer.valueOf(getSkKeputusan()));

		if (Integer.valueOf(getStrukturOrganisasiInduk()) > 0) {
			StrukturOrganisasi so = new StrukturOrganisasi();
			so.setId(Integer.valueOf(getStrukturOrganisasiInduk()));
			object.setStrukturOrganisasiInduk(so);
		} else {
			object.setStrukturOrganisasiInduk(null);
		}

		object.setKelompokStruktur(ks);
		object.setSkKeputusan(skkp);
		object.setKelompokOrganisasi(getKelompokOrganisasi());
		object.setNama(getNama());
		object.setAktif(isAktif());
		object.setTanggalBerlaku(getTanggalBerlaku());
		object.setTanggalBerakhir(getTanggalBerakhir());
		object.setLevelDariAtas(getLevelDariAtas());
		object.setNoSk(getNoSk());
		object.setNamaJabatan(getNamaJabatan());
		object.setInisial(getInisial());
		dao.insert(object);
		dao.close();

		return "empty";
	}

	public Date getTanggalBerlaku() {
		return tanggalBerlaku;
	}

	public void setTanggalBerlaku(Date tanggalBerlaku) {
		this.tanggalBerlaku = tanggalBerlaku;
	}

	public Date getTanggalBerakhir() {
		return tanggalBerakhir;
	}

	public void setTanggalBerakhir(Date tanggalBerakhir) {
		this.tanggalBerakhir = tanggalBerakhir;
	}

	public String update() {
		DAO<Integer> dao = new DAO<Integer>();
		StrukturOrganisasi object = (StrukturOrganisasi) dao.find(
				StrukturOrganisasi.class, Integer.valueOf(getId()));
		object.setNama(getNama());
		object.setAktif(isAktif());
		object.setTanggalBerlaku(getTanggalBerlaku());
		object.setTanggalBerakhir(getTanggalBerakhir());
		object.setLevelDariAtas(getLevelDariAtas());
		object.setNoSk(getNoSk());
		object.setNamaJabatan(getNamaJabatan());
		object.setInisial(getInisial());
		object.setKelompokOrganisasi(getKelompokOrganisasi());
		if (Integer.valueOf(getStrukturOrganisasiInduk()) > 0) {
			StrukturOrganisasi so = new StrukturOrganisasi();
			so.setId(Integer.valueOf(getStrukturOrganisasiInduk()));
			object.setStrukturOrganisasiInduk(so);
		} else {
			object.setStrukturOrganisasiInduk(null);
		}

		KelompokStruktur ks = new KelompokStruktur();
		ks.setId(Integer.valueOf(getKelompokStruktur()));

		SKKeputusan skkp = new SKKeputusan();
		skkp.setId(Integer.valueOf(getSkKeputusan()));

		object.setKelompokStruktur(ks);
		object.setSkKeputusan(skkp);

		dao.update(object);
		dao.close();
		return "empty";
	}

	public String delete() {
		DAO<Integer> dao = new DAO<Integer>();
		StrukturOrganisasi delete = (StrukturOrganisasi) dao.find(
				StrukturOrganisasi.class, Integer.valueOf(getId()));
		dao.delete(delete);
		dao.close();
		return "empty";
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNama() {
		return nama;
	}

	public void setNama(String nama) {
		this.nama = nama;
	}

	public String getInisial() {
		return inisial;
	}

	public void setInisial(String inisial) {
		this.inisial = inisial;
	}

	public int getLevelDariAtas() {
		return levelDariAtas;
	}

	public void setLevelDariAtas(int levelDariAtas) {
		this.levelDariAtas = levelDariAtas;
	}

	public String getNoSk() {
		return noSk;
	}

	public void setNoSk(String noSk) {
		this.noSk = noSk;
	}

	public String getNamaJabatan() {
		return namaJabatan;
	}

	public void setNamaJabatan(String namaJabatan) {
		this.namaJabatan = namaJabatan;
	}

	public boolean isAktif() {
		return aktif;
	}

	public void setAktif(boolean aktif) {
		this.aktif = aktif;
	}

	public String getStrukturOrganisasiInduk() {
		return strukturOrganisasiInduk;
	}

	public void setStrukturOrganisasiInduk(String strukturOrganisasiInduk) {
		this.strukturOrganisasiInduk = strukturOrganisasiInduk;
	}

	public KelompokOrganisasi getKelompokOrganisasi() {
		return kelompokOrganisasi;
	}

	public void setKelompokOrganisasi(KelompokOrganisasi kelompokOrganisasi) {
		this.kelompokOrganisasi = kelompokOrganisasi;
	}

	

}
